package com.yuhs.zixing.study.design.pattern.dp001.principle.p01.single.responsibility.sr001;

/**
 * @description 001 的run方法，违反了单一职责原则
 * 解决方法：根据交通工具的运行方式不同，分解成不同类
 *
 *  分析：
 *  1、遵守了单一职责
 *  2、改动很大，类做了拆解，同时修改了客户端
 *  3、改进：直接修改 Vehicle 类
 *
 * @author: yuhs
 * @date 2022/3/23 下午8:01
 */
public class SingleResponsibilityDemo_002 {
    public static void main(String[] args) {
        RoadVehicle roadVehicle = new RoadVehicle();
        roadVehicle.run("摩托车");
        roadVehicle.run("汽车");
        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飞机");
    }
}

class RoadVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + " 在公路上运行。。。");
    }
}

class AirVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + " 在天空上运行。。。");
    }
}
